package cn.cyh.queue_service.websocket;

import cn.cyh.queue_service.common.Constants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 叫号消息类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CallMessage implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 消息类型
     */
    private String type = Constants.WebSocketMessageType.CALL_MESSAGE;

    /**
     * 队列ID
     */
    private Long queueId;

    /**
     * 队列号码
     */
    private String queueNumber;

    /**
     * 窗口ID
     */
    private Long windowId;

    /**
     * 窗口编号
     */
    private String windowNumber;

    /**
     * 窗口名称
     */
    private String windowName;

    /**
     * 业务类型ID
     */
    private Long businessTypeId;

    /**
     * 业务类型名称
     */
    private String businessTypeName;

    /**
     * 区域ID
     */
    private String areaId;

    /**
     * 区域名称
     */
    private String areaName;

    /**
     * 呼叫时间
     */
    private LocalDateTime callTime;

    /**
     * 排队状态
     */
    private String status;

    /**
     * 等待人数
     */
    private Integer waitingCount;

    /**
     * 等待时间（分钟）
     */
    private Integer waitingTime;

    /**
     * 呼叫次数
     */
    private Integer callCount;

    /**
     * 呼叫音频URL
     */
    private String audioUrl;

    /**
     * 额外数据
     */
    private Object extra;
} 